package com.yxc.emqxdemo.configuration;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * emqx消费者
 *
 * @author: YXC
 * @time: 2022/10/17 11:18
 **/
// 运行时生效
@Retention(RetentionPolicy.RUNTIME)
// 字段注解
@Target(ElementType.TYPE)
public @interface EmqxConsumer {

    /**
     * 消费主题
     */
    String topic() default "";

    /**
     * 消费模式，单个消费，批量消费
     */
    Mode mode() default Mode.SINGLE;

    /**
     * 批量消费数量，当mode为Mode.BATH时，有效
     */
    int bathNum() default 1000;

    enum Mode {
        /**
         * 批量
         */
        BATH,
        /**
         * 单个
         */
        SINGLE;
    }

}
